What is npm?
The npm package 'npm' is the package manager for Node.js. It allows users to install, update, and manage dependencies for Node.js applications. It also provides tools for package discovery, publishing, and managing a local development environment.
What are npm's main functionalities?
Package Installation
Installs the 'express' package and its dependencies into the node_modules directory.
npm install express
Package Update
Updates the 'lodash' package to the latest version according to the versioning in package.json.
npm update lodash
Package Removal
Removes the 'moment' package from the node_modules directory and updates the package.json.
npm uninstall moment
Listing Installed Packages
Lists the top-level packages installed in the node_modules directory.
npm list --depth=0
Running Scripts
Runs the 'test' script specified in the package.json file.
npm run test
Publishing a Package
Publishes the current package to the npm registry, making it available for others to install.
npm publish
Other packages similar to npm
yarn
Yarn is a package manager that provides faster, more reliable, and more secure dependency management compared to npm. It uses a lockfile to ensure that the same package versions are installed across different environments.
pnpm
pnpm is a fast, disk space efficient package manager that works by creating a single copy of a package version and linking it in the node_modules of every project that uses it. This approach saves disk space and improves installation speed compared to npm.
bower
Bower is a package manager primarily for front-end web development. It manages components that contain HTML, CSS, JavaScript, fonts, or even image files. Bower is less commonly used now due to npm and Yarn's ability to handle front-end packages as well.
npm - a JavaScript package manager
Requirements
- Node.js
v10
or higher must be installed to run this program
Installation
npm
comes bundled with node
, & most third-party distributions, by default. Officially supported downloads/distributions can be found at: nodejs.org/en/download
Direct Download
You can download & install npm
directly from npmjs.com using our custom install.sh
script:
curl -qL https://www.npmjs.com/install.sh | sh
Node Version Managers
If you're looking to manage multiple versions of node
&/or npm
, consider using a "Node Version Manager" such as:
Usage
npm <command>
Links & Resources
- Documentation - Official docs & how-tos for all things npm
- Note: you can also search docs locally with
npm help-search <query>
- Bug Tracker - Search or submit bugs against the CLI
- Roadmap - Track & follow along with our public roadmap
- Feedback - Contribute ideas & discussion around the npm registry, website & CLI
- RFCs - Contribute ideas & specifications for the API/design of the npm CLI
- Service Status - Monitor the current status & see incident reports for the website & registry
- Project Status - See the health of all our maintained OSS projects in one view
- Events Calendar - Keep track of our Open RFC calls, releases, meetups, conferences & more
- Support - Experiencing problems with the npm website or registry? File a ticket here
Acknowledgments
npm
is configured to use the npm Public Registry at https://registry.npmjs.org by default; Usage of this registry is subject to Terms of Use available at https://npmjs.com/policies/terms- You can configure
npm
to use any other compatible registry you prefer. You can read more about configuring third-party registries here
FAQ on Branding
Is it "npm" or "NPM" or "Npm"?
npm
should never be capitalized unless it is being displayed in a location that is customarily all-capitals (ex. titles on man
pages).
Is "npm" an acronym for "Node Package Manager"?
Contrary to popular belief, npm
is not in fact an acronym for "Node Package Manager"; It is a recursive bacronymic abbreviation for "npm is not an acronym" (if the project was named "ninaa", then it would be an acronym). The precursor to npm
was actually a bash utility named "pm", which was the shortform name of "pkgmakeinst" - a bash function that installed various things on various platforms. If npm
were to ever have been considered an acronym, it would be as "node pm" or, potentially "new pm".